///////////////////////////////////////////////////////////
//  IntData.h
//  Implementation of the Class IntData
//  Created on:      19-Aug-2013 10:11:13 PM
//  Original author: Jakkaphan Aiemcharoenjit
///////////////////////////////////////////////////////////

#if !defined(EA_9FF559C6_B95E_45ce_98F5_DBE13AC78386__INCLUDED_)
#define EA_9FF559C6_B95E_45ce_98F5_DBE13AC78386__INCLUDED_

#include "../Interfaces/IInt.h"

namespace Data
{
class IntData : public IInt
{

public:
	IntData(const int& _value = 0);
	IntData(const IntData& anotherInt);
	virtual ~IntData();
	virtual IData::DataType GetDataType() const;
	virtual IObject::ObjectType GetType() const;
	virtual int GetValue() const;
	virtual void SetValue(const int& _value);
	virtual IObject* Clone();
	virtual String_t ToString() const;
	virtual String_t ToXML();
  virtual bool operator==(const int& _anotherValue) const;
  virtual bool operator!=(const int& _anotherValue) const;
  virtual bool operator>(const int& _anotherValue) const;
  virtual bool operator>=(const int& _anotherValue) const;
  virtual bool operator<(const int& _anotherValue) const;
  virtual bool operator<=(const int& _anotherValue) const;

private:
	IObject::ObjectType m_type;
	IData::DataType m_dataType;
	int m_value;

};
}
#endif // !defined(EA_9FF559C6_B95E_45ce_98F5_DBE13AC78386__INCLUDED_)
